-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Illumos 7176 Yet another hole birth issue #4950
Illumos 7176 Yet another hole birth issue #4950
Conversation
Todo: Commit message needs update once review & approved upstream
thanks |
12ab566
to
be7db52
Compare
Authored by: Paul Dagnelie <[email protected]> Reviewed by: Matthew Ahrens [email protected] Reviewed by: George Wilson [email protected] Approved by: Ported-by: kernelOfTruth <[email protected]> OpenZFS-issue: https://www.illumos.org/issues/7176 OpenZFS-commit: This is another bug in the long line of hole-birth related issues. In this particular case, it was discovered that a previous hole-birth fix (illumos bug 6513) did not cover as many cases as we thought it did. While the issue worked in the case of hole-punching (writing zeroes to a large part of a file), it did not deal with truncation, and then writing beyond the new end of the file. The problem is that dbuf_findbp will return ENOENT if the block it's trying to find is beyond the end of the file. If that happens, we assume there is no birth time, and so we lose that information when we write out new blkptrs. We should teach dbuf_findbp to look for things that are beyond the current end, but not beyond the absolute end of the file. Upstream bugs: DLPX-46009 Porting notes: fix ISO C90 mixed declaration error in dbuf.c ( int nlevels, epbs; ) ; keep previous position of the initialization
be7db52
to
6267992
Compare
@bprotopopov can I add your signed-by when merging this. |
@bprotopopov DN_MAX_INDBLKSHIFT to 17 is covered by PR 4800 #4800 |
Right, we still need to pull that patch in after it's rebased and passes the tests. |
Sure, np From: Brian Behlendorf [email protected] @bprotopopovhttps://github.com/bprotopopov can I add your signed-by when merging this. You are receiving this because you were mentioned. |
Yes, that's a better approach From: Richard Elling [email protected] @bprotopopovhttps://github.com/bprotopopov DN_MAX_INDBLKSHIFT to 17 is covered by PR 4800 #4800#4800 You are receiving this because you were mentioned. |
Merged as: 32d41fb OpenZFS 7176 - Yet another hole birth issue |
Illumos 7176 Yet another hole birth issue
Authored by: Paul Dagnelie [email protected]
Reviewed by: Matthew Ahrens [email protected]
Reviewed by: George Wilson [email protected]
Approved by:
Ported-by: kernelOfTruth [email protected]
OpenZFS-issue: https://www.illumos.org/issues/7176
OpenZFS-commit:
This is another bug in the long line of hole-birth related issues. In this particular case, it was discovered that a previous hole-birth fix (illumos bug 6513) did not cover as many cases as we thought
it did. While the issue worked in the case of hole-punching (writing zeroes to a large part of a file), it did not deal with truncation, and then writing beyond the new end of the file.
The problem is that dbuf_findbp will return ENOENT if the block it's trying to find is beyond the end of the file. If that happens, we assume there is no birth time, and so we lose that information when
we write out new blkptrs. We should teach dbuf_findbp to look for things that are beyond the current end, but not beyond the absolute end of the file.
Upstream bugs: DLPX-46009